/*******************************************************************************
 * Package: com.hngtrust.iir.third.service
 * Type:    ChinaTrustRegistrationService
 * Date:    2021/10/14 10:26
 *
 * Copyright (c) 2021 HUANENG GUICHENG TRUST CORP.,LTD All Rights Reserved.
 *
 * You may not use this file except in compliance with the License.
 *******************************************************************************/
package com.hngtrust.iir.third.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.hngtrust.framework.bind.ResponseInfo;
import com.hngtrust.iir.third.controller.dto.BeneficiaryExportVO;
import com.hngtrust.iir.third.controller.dto.BeneficiaryVO;
import com.hngtrust.iir.third.controller.dto.CtrBeneficiaryDTO;
import com.hngtrust.iir.third.controller.dto.CtrBeneficiaryExportDTO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 调用中信登第三方接口（受益所有人）
 *
 * @author Yujiaqi
 * @date 2021/10/14 10:26
 */
public interface BeneficiaryService {
    /**
     * 受益所有人查询
     * @param beneficiaryVO
     */
    ResponseInfo<List<CtrBeneficiaryDTO>> beneficiary(BeneficiaryVO beneficiaryVO) throws JsonProcessingException;
    
    /**
     * 受益人模板下载
     */
    void templateDownload(HttpServletResponse response) throws IOException;
    
    /**
     * 受益人数据导出
     */
    void dataExport(BeneficiaryExportVO beneficiaryExport,HttpServletResponse response) throws IOException;
    
    /**
     * 更新中信登受益人数据
     * @param beneficiaryVO
     * @return
     */
    ResponseInfo<List<CtrBeneficiaryDTO>> updateBeneficiary(BeneficiaryVO beneficiaryVO);
    
    /**
     * 批量调用中债登数据
     * @param file
     * @return
     */
    ResponseInfo<List<CtrBeneficiaryExportDTO>> addBeneficiarys(MultipartFile file) throws IOException;
    
    
}
